/*
 * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package com.sun.corba.se.spi.transport;

import com.sun.corba.se.spi.protocol.CorbaClientDelegate;
import com.sun.corba.se.spi.protocol.ClientDelegateFactory;
import com.sun.corba.se.spi.transport.CorbaContactInfoList;
import com.sun.corba.se.spi.transport.CorbaContactInfoListFactory;
import com.sun.corba.se.spi.transport.ReadTimeouts;
import com.sun.corba.se.spi.transport.ReadTimeoutsFactory;
import com.sun.corba.se.spi.orb.ORB;
import com.sun.corba.se.spi.ior.IOR;

// Internal imports, not used in the interface to this package
import com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl;
import com.sun.corba.se.impl.transport.CorbaContactInfoListImpl;
import com.sun.corba.se.impl.transport.ReadTCPTimeoutsImpl;

/**
 * This class provices standard building blocks for the ORB, as do all Default classes
 * in the various packages.
 */
public abstract class TransportDefault {

  private TransportDefault() {
  }

  public static CorbaContactInfoListFactory makeCorbaContactInfoListFactory(
      final ORB broker) {
    return new CorbaContactInfoListFactory() {
      public void setORB(ORB orb) {
      }

      public CorbaContactInfoList create(IOR ior) {
        return new CorbaContactInfoListImpl(
            (com.sun.corba.se.spi.orb.ORB) broker, ior);
      }
    };
  }

  public static ClientDelegateFactory makeClientDelegateFactory(
      final ORB broker) {
    return new ClientDelegateFactory() {
      public CorbaClientDelegate create(CorbaContactInfoList info) {
        return new CorbaClientDelegateImpl(
            (com.sun.corba.se.spi.orb.ORB) broker, info);
      }
    };
  }

  public static IORTransformer makeIORTransformer(
      final ORB broker) {
    return null;
  }

  public static ReadTimeoutsFactory makeReadTimeoutsFactory() {
    return new ReadTimeoutsFactory() {
      public ReadTimeouts create(int initial_wait_time,
          int max_wait_time,
          int max_giop_hdr_wait_time,
          int backoff_percent_factor) {
        return new ReadTCPTimeoutsImpl(
            initial_wait_time,
            max_wait_time,
            max_giop_hdr_wait_time,
            backoff_percent_factor);
      }

      ;
    };
  }
}

// End of file.
